#ifndef __CONDITION_H__
#define __CONDITION_H__

#include "NonCopyable.h"
#include <pthread.h>

//在头文件中，如果使用了其他的头文件中的数据
//如果可以用前向声明解决的，就不要去包含头文件
//为了防止头文件的循环包含

class MutexLock;//前向声明

class Condition
: NonCopyable
{
public:
    Condition(MutexLock &mutex);
    ~Condition();
    void wait();
    void notify();
    void notifyAll();

private:
    MutexLock &_mutex;
    pthread_cond_t _cond;
};

#endif
